package Mapas;

import Clases.Bloques;
import Clases.Calculos;
import Clases.Jugador;
import java.awt.Color;
import java.util.ArrayList;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Mapa1 {
    private Clases.Calculos calculo = new Calculos();
    private int[][] mapaDisenio = {
        {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3},
        {3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3},
        {3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3},
        {3, 5, 3, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3},
        {3, 5, 3, 3, 5, 5, 5, 5, 5, 5, 3, 3, 5, 3},
        {3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3},
        {3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3},
        {3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3},
        {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}
    };
    private Bloques[][] mapaBloques;
    private Jugador jugador;
    private ArrayList<Class> bots;
    private ArrayList<Class> objetos;
    private JPanel panelMapa;
    private int filas, columnas;
    

    public Mapa1() {
        filas = mapaDisenio.length;
        columnas = mapaDisenio[0].length;
    }

    public void ConstruirBloques() {
        int idBloque, idReferencia = 0;
        mapaBloques = new Bloques[filas][columnas];
        for (int i = 0; i < filas; i++) {
            for (int j = 0; j < columnas; j++) {
                idBloque = mapaDisenio[i][j];
                mapaBloques[i][j] = new Bloques(idBloque, idReferencia);
                idReferencia++;
            }
        }
    }

    public void ConstruirTablero() {
        JLabel bloque, imgJugador;
        int numeroComponente = 1;
        panelMapa = new JPanel(null);

        panelMapa.setBounds(0, 0, (columnas * 50), (filas * 50));
        panelMapa.setBackground(Color.white);

        //Se agrega Jugador al mapa.
        imgJugador = jugador.getImgJugador();
        imgJugador.setBounds(jugador.getFisicoX(), jugador.getFisicoY(), 50, 50);
        panelMapa.add(imgJugador);
        panelMapa.setComponentZOrder(panelMapa.getComponent(0), 0);

        //Se agregan Bloques al mapa.
        for (int i = 0, posX = 0; i < filas; i++, posX = posX + 50) {
            for (int j = 0, posY = 0; j < columnas; j++, posY = posY + 50) {
                bloque = mapaBloques[i][j].getBloque();
                bloque.setBounds(posY, posX, 50, 50);
                panelMapa.add(bloque);
                panelMapa.setComponentZOrder(panelMapa.getComponent(numeroComponente), 1);
                numeroComponente++;
            }
        }

    }

    public void ActualizarJugador() {
    }

    public Bloques getMapaBloques(int x, int y) {
        return mapaBloques[x][y];
    }

    public JPanel getPanelMapa() {
        return panelMapa;
    }

    public Jugador getJugador() {
        return jugador;
    }

    public void setJugador(Jugador jugador) {
        this.jugador = jugador;
    }
}
